Video streaming is becoming more and more popular, with video traffic exceeding 50 percent of the total traffic over content distribution networks (CDNs) according to some estimates. DASH (Dynamic Adaptive Streaming over HyperText Transfer Protocol (HTTP)) is designed to promote efficient delivery of multimedia content from servers to clients through HTTP-based content distribution networks.
Adaptive streaming over HTTP allows streaming clients to switch between different representations of multimedia content that has been encoded (compressed) at multiple, different bitrates. Each representation may be divided into one or more segments, and each segment may be divided into one or more sub-segments. Bitrate information for each representation, either at the representation level or at the segment/sub-segment level, is provided to a client through a document containing metadata, referred to as Media Presentation Description (MPD). Based on that bitrate information, the client can switch from one representation to another according to the available bandwidth. Switching from one representation to another occurs at segment/sub-segment boundaries, referred to as stream access points (SAPs). Thus, the client may stream segments/sub-segments from a higher bitrate representation when more bandwidth is available, and may stream segments/sub-segments from a lower bitrate representation with less bandwidth is available. Generally speaking, bitrate-driven adaptive streaming is greedy in nature, because each client selects and streams the representation that has the highest possible bitrate that the client can handle and is within the amount of bandwidth that is available.
Bitrate can influence the level of quality, although quality is not solely dependent on bitrate. Fluctuations in quality can occur when bandwidth or bitrate varies over time, such as when a client switches back-and-forth between higher and lower bitrate representations as just described. Furthermore, the greedy nature of bitrate-driven adaptive streaming can, in some instances, intensify the degree and frequency of changes in available bandwidth as multiple streaming clients and applications compete for bandwidth, thereby also intensifying fluctuations in quality.
Representations may be encoded as constant bit rate (CBR) versions or variable bit rate (VBR) versions. With CBR, the bitrate is well-controlled so that it is nearly constant. However, the complexity of content may change as a result of, for example, switching from relatively static (less complex) scenes to dynamic (more complex) scenes. Consequently, quality may fluctuate significantly unless the specified bitrate is sufficiently high to envelope the more complex scenes. However, the constant use of a higher bitrate, even for less complex scenes, means that bandwidth is wasted when those scenes are being sent over the network.
VBR may be unconstrained, or it may be constrained (the maximum bitrate is capped). With VBR, a higher bitrate can be allocated to more complex scenes and a lower bitrate can be allocated to less complex scenes. As a result, fluctuations in quality are relatively small, but quality still may not be consistent, particularly when VBR is constrained. Also, use of a higher bitrate may not necessarily improve quality, and consequently bandwidth is wasted when a higher bitrate is used but does not contribute to an improvement in quality.
To summarize, bitrate-driven adaptive streaming results in at least a couple of issues: fluctuations in quality, and inefficient use of bandwidth.